package com.dms.modules.product.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value = "ProductVO", description = "商品展示对象")
public class ProductVO {
    
    @ApiModelProperty("商品ID")
    private Long id;
    
    @ApiModelProperty("店铺ID")
    private Long merchantId;
    
    @ApiModelProperty("店铺名称")
    private String merchantName;
    
    @ApiModelProperty("分类ID")
    private Long categoryId;
    
    @ApiModelProperty("分类名称")
    private String categoryName;
    
    @ApiModelProperty("商品名称")
    private String name;
    
    @ApiModelProperty("商品副标题")
    private String subtitle;
    
    @ApiModelProperty("商品主图")
    private String mainImage;
    
    @ApiModelProperty("商品子图")
    private List<String> subImages;
    
    @ApiModelProperty("商品详情")
    private String detail;
    
    @ApiModelProperty("商品价格")
    private BigDecimal price;
    
    @ApiModelProperty("商品原价")
    private BigDecimal originalPrice;
    
    @ApiModelProperty("商品库存")
    private Integer stock;
    
    @ApiModelProperty("商品状态：0-下架 1-上架")
    private Integer status;
    
    @ApiModelProperty("销量")
    private Integer sales;
    
    @ApiModelProperty("浏览量")
    private Integer viewCount;
    
    @ApiModelProperty("评分")
    private Double rating;
    
    @ApiModelProperty("评价数量")
    private Integer commentCount;
    
    @ApiModelProperty("收藏数量")
    private Integer favoriteCount;
    
    @ApiModelProperty("是否已收藏：0-否 1-是")
    private Integer isFavorite;
    
    @ApiModelProperty("是否推荐：0-否 1-是")
    private Integer isRecommend;
    
    @ApiModelProperty("是否新品：0-否 1-是")
    private Integer isNew;
    
    @ApiModelProperty("是否热销：0-否 1-是")
    private Integer isHot;
    
    @ApiModelProperty("商品规格")
    private List<ProductSpecVO> specs;
    
    @ApiModelProperty("SKU列表")
    private List<ProductSkuVO> skuList;
    
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
} 